package com.tx.core.util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 获取地址类
 * <功能详细描述>
 * 
 * @author  PengQingyang
 * @version  [版本号, 2022年10月8日]
 * @see  [相关类/方法]
 * @since  [产品/模块版本]
 */
public class IPAddressUtils {
    
    protected static final Logger log = LoggerFactory
            .getLogger(IPAddressUtils.class);
    
    // IP地址查询
    public static final String IP_URL = "http://whois.pconline.com.cn/ipJson.jsp";
    
    // 未知地址
    public static final String UNKNOWN = "XX XX";
    
    /**
     * 获取服务器真实的IP地址<br/>
     * <功能详细描述>
     * @param ip
     * @return [参数说明]
     * 
     * @return String [返回类型说明]
     * @exception throws [异常类型] [异常说明]
     * @see [类、类#方法、类#成员]
     */
    public static String getRealAddressByIP(String ip) {
        // 内网不查询
        if (IpUtils.isInternalIp(ip)) {
            return "内网IP";
        }
        //if (RuoYiConfig.isAddressEnabled()) {
        //    try {
        //        String rspStr = HttpUtils.sendGet(IP_URL,
        //                "ip=" + ip + "&json=true",
        //                Constants.GBK);
        //        if (StringUtils.isEmpty(rspStr)) {
        //            log.error("获取地理位置异常 {}", ip);
        //            return UNKNOWN;
        //        }
        //        JSONObject obj = JSON.parseObject(rspStr);
        //        String region = obj.getString("pro");
        //        String city = obj.getString("city");
        //        return String.format("%s %s", region, city);
        //    } catch (Exception e) {
        //        log.error("获取地理位置异常 {}", ip);
        //    }
        //}
        return UNKNOWN;
    }
}
